Automatic calibration of probe request received signal strength indication (rssi) threshold to control associations

ABSTRACT

System and methods are provided for dynamically setting a threshold signal-to-noise ratio for probe requests for one or more access points in a wireless network based on several factors, including density/distance between access points and/or current and expected load on access points. By dynamically adjusting a threshold signal-to-noise for probe requests, the systems and methods described herein may efficiently utilize resources based on current and/or expected conditions. In particular, an access point may ignore client device probe requests when another access point may be better positioned to handle such a request and/or when the access point would be unable to meet expected load requirements if such an associate were made.

TECHNICAL FIELD

The present disclosure relates to dynamically setting a threshold signal-to-noise for probe requests for one or more access points in a wireless network based on several factors, including density/distance between access points and/or load on access points.

BACKGROUND

Over the last decade, there has been a substantial increase in the use and deployment of wireless client devices, from dual-mode smartphones to tablets capable of operating in accordance with a particular Institute of Electrical and Electronics Engineers (IEEE) standard. With “wireless” becoming the de-facto medium for connectivity among users, it has become increasingly important for network systems to intelligently manage connections.

In some environments, client devices may attempt to associate with an access point by transmitting a probe request. Traditionally, a threshold signal-to-noise ratio is manually preset for the access point and/or the wireless network. Probe requests that fall below this manually preset threshold signal-to-noise ratio are ignored by the corresponding access point. Although this threshold signal-to-noise ratio allows the access points and wireless network to ignore probe requests from client devices, this manually set threshold does not take into account dynamic environmental variables.

The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and they mean at least one. In the drawings:

FIG. 1 shows a block diagram example of a network system in accordance with one or more embodiments;

FIG. 2 shows a block diagram example of an access point in accordance with one or more embodiments;

FIG. 3 shows a method for dynamically determining a threshold signal-to-noise ratio for an access point based on distance/density between access points according to one embodiment;

FIG. 4 shows a method for dynamically determining a threshold signal-to-noise ratio for an access point based on current and/or expected load on an access point according to one embodiment; and

FIG. 5 shows a method for dynamically determining a threshold signal-to-noise ratio for an access point based on current and/or expected load on an access point according to another embodiment.

DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding. One or more embodiments may be practiced without these specific details. Features described in one embodiment may be combined with features described in a different embodiment. In some examples, well-known structures and devices are described with reference to a block diagram form in order to avoid unnecessarily obscuring the present invention.

Herein, certain terminology is used to describe features for embodiments of the disclosure. For example, the term “digital device” generally refers to any hardware device that includes processing circuitry running at least one process adapted to control the flow of traffic into the device. Examples of digital devices include a computer, a tablet, a laptop, a desktop, a netbook, a server, a web server, an authentication server, an authentication-authorization-accounting (AAA) server, a Domain Name System (DNS) server, a Dynamic Host Configuration Protocol (DHCP) server, an Internet Protocol (IP) server, a Virtual Private Network (VPN) server, a network policy server, a mainframe, a television, a content receiver, a set-top box, a video gaming console, a television peripheral, a printer, a mobile handset, a smartphone, a personal digital assistant “PDA”, a wireless receiver and/or transmitter, an access point, a base station, a communication management device, a router, a switch, and/or a controller.

It is contemplated that a digital device may include hardware logic such as one or more of the following: (i) processing circuitry; (ii) one or more communication interfaces such as a radio (e.g., component that handles the wireless data transmission/reception) and/or a physical connector to support wired connectivity; and/or (iii) a non-transitory computer-readable storage medium (e.g., a programmable circuit; a semiconductor memory such as a volatile memory and/or random access memory “RAM,” or non-volatile memory such as read-only memory, power-backed RAM, flash memory, phase-change memory or the like; a hard disk drive; an optical disc drive; etc.) or any connector for receiving a portable memory device such as a Universal Serial Bus “USB” flash drive, portable hard disk drive, or the like.

Herein, the terms “logic” (or “logic unit”) are generally defined as hardware and/or software. For example, as hardware, logic may include a processor (e.g., a microcontroller, a microprocessor, a CPU core, a programmable gate array, an application specific integrated circuit, etc.), semiconductor memory, combinatorial logic, or the like. As software, logic may be one or more software modules, such as executable code in the form of an executable application, an application programming interface (API), a subroutine, a function, a procedure, an object method/implementation, an applet, a servlet, a routine, source code, object code, a shared library/dynamic load library, or one or more instructions. These software modules may be stored in any type of a suitable non-transitory storage medium, or transitory computer-readable transmission medium (e.g., electrical, optical, acoustical or other form of propagated signals such as carrier waves, infrared signals, or digital signals).

Lastly, the terms “or” and “and/or” as used herein are to be interpreted as inclusive or meaning any one or any combination. Therefore, “A, B or C” or “A, B and/or C” mean “any of the following: A; B; C; A and B; A and C; B and C; A, B and C.” An exception to this definition will occur only when a combination of elements, functions, steps or acts are in some way inherently mutually exclusive.

FIG. 1 shows a block diagram example of a network system 100 in accordance with one or more embodiments. The network system 100, as illustrated in FIG. 1, is a digital system that may include a plurality of digital devices such as one or more access points 101 ₁-101 _(N), one or more network controllers 103 ₁-103 _(M), and one or more client devices 105 ₁-105 _(P). The client devices 105 ₁-105 _(P) may be connected or otherwise associated with the access points 101 ₁-101 _(N) through corresponding wireless connections. As will be described in greater detail below, the client devices 105 ₁-105 _(P) may establish connections with access points 101 ₁-101 _(N) through the use of probe requests. In particular, a client device 105 ₁-105 _(P), may transmit a probe request to one or more of the access points 101 ₁-101 _(N). An access point 101 ₁-101 _(N) may respond to a probe request such that a connection may be established between the client device 105 ₁-105 _(P) and the corresponding access point 101 ₁-101 _(N). However, an access point 101 ₁-101 _(N) may ignore a request if the request fails to meet one or more requirements. For example, a probe request may be ignored if the request fails to meet a threshold signal-to-noise ratio of a corresponding access point 101 ₁-101 _(N). Processes and techniques for setting these threshold signal-to-noise ratios for access points 101 ₁-101 _(N) will be described in greater detail below.

The access points 101 ₁-101 _(N) and the network controllers 103 ₁-103 _(M) may be connected through the switching fabric 107 through wired and/or wireless connections. Each element of the network system 100 will be described below by way of example. In one or more embodiments, the network system 100 may include more or less devices than the devices illustrated in FIG. 1, which may be connected to other devices within the network system 100 via wired and/or wireless mediums. For example, in other embodiments, the network system 100 may include additional access points 101, network controllers 103, and/or client devices 105 than those shown in FIG. 1.

The access points 101 ₁-101 _(N) may be any device that can associate with the client devices 105 ₁-105 _(P) to transmit and receive data over wireless channels. Each of the access points 101 ₁-101 _(N) may be configured to operate one or more virtual access points (VAPs) that allow each of the access points 101 ₁-101 _(N) to be segmented into multiple broadcast domains. In one embodiment, the access points 101 ₁-101 _(N) may correspond to a network device such as a wireless access point, a switch, a router, or any combination thereof. FIG. 2 shows a component diagram of the access point 101 ₁ according to one embodiment. In other embodiments, the access points 101 ₂-101 _(N) may include similar or identical components to those shown and described in relation to the access point 101 ₁.

As shown in FIG. 2, the access point 101 ₁ may comprise one or more of: a hardware processor 201, data storage 203, an input/output (I/O) interface 205, and device configuration logic 207. Each of these components of the access point 101 ₁ will be described in further detail below.

The data storage 203 of the access point 101 ₁ may include a fast read-write memory for storing programs and data during performance of operations/tasks and a hierarchy of persistent memory, such as Read Only Memory (ROM), Erasable Programmable Read Only Memory (EPROM,) and/or Flash memory for example, for storing instructions and data needed for the startup and/or operation of the access point 101 ₁. In one embodiment, the data storage 203 is a distributed set of data storage components. The data storage 203 may store data that is to be transmitted from the access point 101 ₁ or data that is received by the access point 101 ₁. For example, the data storage 203 of the access point 101 ₁ may store data to be forwarded to the client devices 105 ₁-105 ₃ or to one or more of the network controllers 103 ₁-103 _(M).

In one embodiment, the I/O interface 205 corresponds to one or more components used for communicating with other devices (e.g., the client devices 105 ₁-105 _(P), the network controllers 103 ₁-103 _(M), and/or other access points 101 ₂-101 _(N)) via wired or wireless signals. The I/O interface 205 may include a wired network interface such as an IEEE 802.3 Ethernet interface and/or a wireless interface such as an IEEE 802.11 WiFi interface. The I/O interface 205 may communicate with the client devices 105 ₁-105 _(P) and the network controllers 103 ₁-103 _(M) over corresponding wireless channels in the system 100. In one embodiment, the I/O interface 205 facilitates communications between the access point 101 ₁ and one or more of the network controllers 103 ₁-103 _(M) through the switching fabric 107. In one embodiment, the switching fabric 107 includes a set of network components that facilitate communications between multiple devices. For example, the switching fabric 107 may be composed of one or more switches, routers, hubs, etc. These network components that comprise the switching fabric 107 may operate using both wired and wireless mediums.

In some embodiments, the I/O interface 205 may include one or more antennas 209 for communicating with the client devices 105 ₁-105 _(P), the network controllers 103 ₁-103 _(M), and/or other wireless devices in the network system 100. For example, multiple antennas 209 may be used for forming transmission beams to one or more of the client devices 105 ₁-105 _(P) or the network controllers 103 ₁-103 _(M) through adjustment of gain and phase values for corresponding antenna 209 transmissions. The generated beams may avoid objects and create an unobstructed path to the client devices 105 ₁-105 _(P) and/or the network controllers 103 ₁-103 _(M).

In one embodiment, the hardware processor 201 is coupled to the data storage 203 and the I/O interface 205. The hardware processor 201 may be any processing device including, but not limited to a MIPS/ARM-class processor, a microprocessor, a digital signal processor, an application specific integrated circuit, a microcontroller, a state machine, or any type of programmable logic array.

In one embodiment, the device configuration logic 207 includes one or more functional units implemented using firmware, hardware, software, or a combination thereof for configuring parameters associated with the access point 101 ₁. In one embodiment, the device configuration logic 207 may be configured to allow the access point 101 ₁ to associate with different client devices 105 ₁-105 _(P).

As described above, the other access points 101 ₂-101 _(N) may be similarly configured as described above in relation to access point 101 ₁. For example, the access points 101 ₂-101 _(N) may each comprise a hardware processor 201, data storage 203, an input/output (I/O) interface 205, and device configuration logic 207 in a similar fashion as described above in relation to the access point 101 ₁.

In one embodiment, the client devices 105 ₁-105 _(P) may be any wireless or wired electronic devices capable of receiving and transmitting data over wired and wireless mediums. For example, the client devices 105 ₁-105 _(P) may be one or more of personal computers, laptop computers, netbook computers, wireless music players, portable telephone communication devices, smart phones, tablets, and digital televisions. In one embodiment, the client devices 105 ₁-105 _(P) are digital devices that include a hardware processor, memory hierarchy, and input/output (I/O) interfaces including a wired and/or wireless interface such as an IEEE 802.3 interface. In one embodiment, the configuration of the components within the client devices 105 ₁-105 _(P) may be similar to those discussed above in relation to the access point 101 ₁. In other embodiments, the client devices 105 ₁-105 _(P) may include more or less components than those shown in FIG. 2 in relation to the access point 101 ₁.

As noted above, the client devices 105 ₁-105 _(P) may attempt to associate with an access point 101 ₁-101 _(N) through the transmission of a probe request. As will be described in greater detail below, the corresponding access point 101 ₁-101 _(N) may analyze the probe requests received from the client device 105 ₁-105 _(P) to determine whether the client device 105 ₁-105 _(P) will be allowed to associate with the access point 101 ₁-101 _(N). In some embodiments, the access point 101 ₁-101 _(N) may indicate that a client device 105 ₁-105 _(P) is not allowed to associate with the access point 101 ₁-101 _(N) through the transmission of a response to a corresponding probe request. While in other embodiments, the access point 101 ₁-101 _(N) may indicate that a client device 105 ₁-105 _(P) is not allowed to associate with the access point 101 ₁-101 _(N) through failing to respond or otherwise ignoring a corresponding probe request. For example, a probe request may be ignored if the request fails to meet a threshold signal-to-noise ratio of a corresponding access point 101 ₁-101 _(N). Processes and techniques for setting these threshold signal-to-noise ratios for access points 101 ₁-101 _(N) will be described in greater detail below.

In one embodiment, the network controllers 103 ₁-103 _(M) are digital devices that include a hardware processor, memory hierarchy, and input/output (I/O) interfaces including a wired and/or wireless interface such as an IEEE 802.3 interface. In one embodiment, the configuration of the components within the network controllers 103 ₁-103 _(M) may be similar to those discussed above in relation to the access point 101 ₁. In other embodiments, the network controllers 103 ₁-103 _(M) may include more or less components than those shown in FIG. 2 in relation to the access point 101 ₁.

In one embodiment, the network controllers 103 ₁-103 _(M) may be any set of devices that assist the access points 101 ₁-101 _(N) in performing network tasks and operations. For example, the network controllers 103 ₁-103 _(M) may assist in determining a threshold signal-to-noise ratio to be used by the access points 101 ₁-101 _(N) for processing a probe request received from a client device 105 ₁-105 _(P). The threshold signal-to-noise ratio is the ratio of signal-to-noise in a probe request signal/frame received from a client device 105 ₁-105 _(P) at which the access point 101 ₁-101 _(N) may respond and attempt to associate with the client device 105 ₁-105 _(P). For example, if the threshold signal-to-noise ratio for the access point 101 ₁ is 10 dB and a probe request from the client device 105 ₁ has a signal-to-noise ratio of 9 dB, the access point 101 ₁ will not respond to the probe request and will not attempt to associate with the client device 101 ₁. In contrast, if the threshold signal-to-noise ratio for the access point 101 ₁ is 10 dB and a probe request from the client device 105 ₁ has a signal-to-noise ratio of 11 dB, the access point 101 ₁ will respond to the probe request and will attempt to associate with the client device 101 ₁.

The threshold signal-to-noise ratio may be set based on various factors, including the density of or distance between access points 101 ₁-101 _(N) and/or current and/or expected access point 101 ₁-101 _(N) load. In contrast to traditional systems, dynamic setting of the threshold signal-to-noise ratio for each of the access points 101 ₁-101 _(N) allows the network system 100 to more efficiently associate client devices 105 ₁-105 _(P) with access points 101 ₁-101 _(N) with a reduced number of client device 105 ₁-105 _(P) moves. The different processes and techniques for dynamically setting/selecting threshold signal-to-noise ratios will be discussed in greater detail below.

FIG. 3 shows a method 300 for dynamically determining a threshold signal-to-noise ratio for an access point 101 ₁-101 _(N) according to one embodiment. The method 300 may be performed by one or more devices in the network system 100. For example, the method 300 may be performed by one or more of the network controllers 103 ₁-103 _(M) in conjunction with one or more of the access points 101 ₁-101 _(N) in the network system 100. In one embodiment, one of the network controllers 103 ₁-103 _(M) may be designated as a master network controller in the network system 100 such that each operation of the method 300 is performed by this designated master network controller. In another embodiment, the method 300 may be entirely performed by a single access point 101 ₁-101 _(N). Accordingly, each access point 101 ₁-101 _(N) may autonomously decide a threshold signal-to-noise ratio for responding to client device 105 ₁-105 _(P) probe requests.

Although each of the operations in the method 300 are shown and described in a particular order, in other embodiments, the operations of the method 300 may be performed in a different order. For example, although the operations of the method 300 are shown as being performed sequentially, in other embodiments the operations of the method 300 may be performed in overlapping or at least partially overlapping time periods.

In one embodiment, the method 300 may commence at operation 301 with the determination of the distances between a particular access point 101 and a selected set of other access points 101. For example, the particular access point 101 may be the access point 101 ₁ and the selected set of access points 101 may be the access points 101 ₂ and 101 ₃. In one embodiment, the set of access points 101 ₂ and 101 ₃ may be selected based on a shared channel and/or a shared Service Set Identifier (SSID) with the particular access point 101 ₁. Accordingly, the access points 101 ₁-101 ₃ may each operate on the same channel and/or on the same SSID. Although described hereinafter in relation to the access points 101 ₁-101 ₃, the method 300 may be similarly performed for other sets of access points 101 ₁-101 _(N). Accordingly, each access point 101 ₁-101 _(N) may separately determine a threshold signal-to-noise ratio that is used for determining whether probe requests from client devices 105 ₁-105 _(P) are ignored or responded to.

Operation 301 may determine the distances between the particular access point 101 ₁ and each of the access points 101 ₂ and 101 ₃ using any technique or process. In one embodiment, the distances between the access point 101 ₁ and each of the access points 101 ₂ and 101 ₃ may be determined at operation 301 based on a set of probe signals. For example, a set of probe signals may be transferred between the access point 101 ₁ and each of the access points 101 ₂ and 101 ₃. Upon receipt, the signal strength of the received signals may be compared against the original transmission strength to determine a difference value. For example, the original transmission strength of a test probe signal between the access point 101 ₁ and the access point 101 ₂ may be 20 dB while the received signal strength may be 16 dB. Accordingly, the distance between the access point 101 ₁ and 101 ₂ may be described as 4 dB (i.e., 20 dB-16 dB).

In another embodiment, the relative positions of each of the access points 101 ₁-101 _(N) may be recorded during setup of the network system 100. In this embodiment, operation 301 may determine the distance between the access point 101 ₁ and each of the access points 101 ₂ and 101 ₃ by looking up the locations in a stored table and/or database. These pre-recorded distances may be represented in decibels.

In other embodiments, the distances between access points 101 ₁-101 _(N) may be determined using any other technique. These distance values may be used to represent a density of access points 101 ₁-101 _(N) in a particular area.

Following determination of a set of distance values at operation 301, operation 303 may select one distance value from the set of distance values. For example, operation 303 may select the minimum distance value, the maximum distance value, the mode of the distances values, the average of the distance values, etc. For instance, in one embodiment, the maximum distance value from the set of distances determined at operation 301 may be selected at operation 303. This maximum distance value may reflect the density of access points 101 ₁-101 ₃ in the network system 100 and/or the farthest radio frequency distance between the access point 101 ₁ and a client device 105 ₁-105 _(P) in the network system 100. A client device 105 ₁-105 _(P) should not associate with the access point 101 ₁ that is farther than the access points 101 ₂ and 101 ₃ as instead these client devices 105 ₁-105 _(P) should attempt to associate with the closer access points 101 ₂ and 101 ₃. In these embodiments, the method 300 is performed with the assumption that the access points 101 ₁-101 ₃ are uniformly distributed within the network system 100. Accordingly, each of the access points 101 ₁ may be uniformly spaced from 1) other access points 101 ₂ and 101 ₃ and 2) the boundaries of the area covered/serviced by the network system 100.

Following selection of a distance value at operation 303, operation 305 may determine a minimum signal-to-noise ratio. The minimum signal-to-noise ratio reflects a default value for assigning a threshold signal-to-noise ratio for the particular access point 101 ₁. For example, the minimum signal-to-noise ratio may be preset by an administrator of the network system 100. In one embodiment, as will be described in greater detail below, the minimum signal-to-noise ratio may be selected as the threshold signal-to-noise ratio when the access point 101 ₁ does not have any neighboring access points 101 ₁-101 _(N) on the same channel and/or using the same SSID.

Following determination of a minimum signal-to-noise ratio, operation 307 takes the minimum value between the selected distance value and the minimum signal-to-noise ratio and assigns this value as the threshold signal-to-noise ratio for the access point 101 ₁. For example, when the selected distance value from operation 303 is 6 dB and the minimum signal-to-noise ratio determined at operation 305 is 4 dB, operation 307 would determine that the selected distance value is less than the minimum signal-to-noise ratio.

Upon determining that the selected distance value is less than the minimum signal-to-noise ratio (i.e., the access points 101 ₁-101 ₃ are relatively separated and are not densely packed together in the network system 100), operation 307 may assign the selected distance value, which is represented in decibels, as the threshold signal-to-noise ratio for the access point 101 ₁. In particular, when the access points 101 ₁-101 ₃ are not densely packed together in the network system 100, the client devices 105 ₁-105 _(P) may not have many proximate access points 101 ₁-101 ₃ to associate with. Accordingly, the threshold signal-to-noise ratio for the access point 101 ₁ may be set to a low level that encourages association with the access point 101 ₁. This will provide the client devices 105 ₁-105 _(P) with greater ease in associating with access points 101 ₁-101 ₃ in a low-density environment.

Conversely, upon determining that the selected distance value is greater than the minimum signal-to-noise ratio, operation 307 may assign the minimum signal-to-noise ratio as the threshold signal-to-noise ratio for the access point 101 ₁. In particular, this minimum signal-to-noise ratio may be selected in situations where the particular access point 101 ₁ does not have any neighboring access points 101 (i.e., access point 101 ₁ is in a hotspot configuration). When the particular access point 101 ₁ does not have any neighboring access points 101, an empty set value may be returned by operations 301 and 303 such that the minimum signal-to-noise ratio is chosen by operations 307 and 311 as the threshold signal-to-noise ratio.

As described above, the method 300 relies on access point 101 ₁-101 _(N) density/distances in the network system 100 to determine the threshold signal-to-noise ratio for the access point 101 ₁. Although described in relation to the access point 101 ₁, in other embodiments the method 300 may determine a threshold signal-to-noise ratio for the access points 101 ₂-101 _(N) in a similar fashion as described above. In some embodiments, the method 300 may be performed on each access point 101 ₁-101 _(N) independently. In this fashion, the access points 101 ₁-101 _(N) may solely and autonomously determine which client devices 105 ₁-105 _(P) they associate with. In particular, upon receiving a probe request from a client device 105 ₁-105 _(P) that is below a threshold signal-to-noise ratio selected by the corresponding access point 101 ₁-101 _(N), the access point 101 ₁-101 _(N) may ignore the request and in effect deny association with the client device 105 ₁-105 _(P). Similarly, upon receiving a probe request from a client device 105 ₁-105 _(P) that is at or above a threshold signal-to-noise ratio selected by the corresponding access point 101 ₁-101 _(N), the access point 101 ₁-101 _(N) may respond to the request and attempt to associate with the client device 105 ₁-105 _(P).

Turning now to FIG. 4, a method 400 for selecting a threshold signal-to-noise ratio according to another embodiment will be described. In contrast to the method 300 that determines a threshold signal-to-noise ratio based on access point 101 ₁-101 _(N) density and/or distances between the access points 101 ₁-101 _(N), the method 400 may determine a threshold signal-to-noise ratio based on current and/or expected client device105 ₁-105 _(P) load on an access point 101 ₁-101 _(N). The method 400 may be performed by one or more devices in the network system 100. For example, the method 400 may be performed by one or more of the network controllers 103 ₁-103 _(M) in conjunction with one or more of the access points 101 ₁-101 _(N) in the network system 100. In one embodiment, one of the network controllers 103 ₁-103 _(M) may be designated as a master network controller in the network system 100 such that each operation of the method 400 is performed by this designated master network controller. In another embodiment, the method 300 may be entirely performed by a single access point 101 ₁-101 _(N). Accordingly, each access point 101 ₁-101 _(N) may autonomously decide a threshold signal-to-noise ratio for responding to client device 105 ₁-105 _(P) probe requests.

Although each of the operations in the method 400 are shown and described in a particular order, in other embodiments, the operations of the method 400 may be performed in a different order. For example, although the operations of the method 400 are shown as being performed sequentially, in other embodiments the operations of the method 400 may be performed in overlapping or at least partially overlapping time periods.

In some embodiments, the threshold signal-to-noise ratio determined with the method 300 for the access point 101 ₁ may be used by the method 400 as an initial estimate. In this embodiment, the method 400 may refine/adjust this initial threshold signal-to-noise ratio estimate for the access point 101 ₁ based on current and/or expected load on the access point 101 ₁. For example, the method 400 may commence at operation 401 with receipt of an initial threshold signal-to-noise estimate for the access point 101 ₁. As noted above, this initial threshold signal-to-noise estimate may be obtained through performance of the method 300.

At operation 403, this initial threshold signal-to-noise ratio estimate may be used to determine an estimated data rate for the access point 101 ₁ that would achieve the initial threshold signal-to-noise ratio estimate. The estimated data rate may indicate the rate at which the access point 101 ₁ would be able to communicate with the farthest client device 105 ₁-105 _(P) while using the initial threshold signal-to-noise ratio estimate. For example, the initial threshold signal-to-noise ratio estimate may be used with a rate table to lookup an associated rate based on the initial threshold signal-to-noise ratio estimate. In one embodiment, a large initial threshold signal-to-noise ratio estimate would provide a corresponding large estimated data rate for the access point 101 ₁ and a low initial threshold signal-to-noise ratio estimate would provide a corresponding low estimated data rate for the access point 101 ₁.

In one embodiment, operation 403 may determine an estimated data rate for the access point 101 ₁ also based on the average packet size transmitted and/or received by the access point 101 ₁. This average packet size may be a preset value or the average packet size may be calculated over any time period (e.g., average packet size over the previous day, hour, minute, second, etc.). For example, the estimated data rate for the access point 101 ₁ may be calculated at operation 403 using the following equation:

EstimatedRate=RateTable(probeReqThreshold,avgPktSize)

The rate table may be preset prior to the commencement of the method 400 and retrieved/accessed from a local or remote location. For example, the rate table may include a probe request threshold value (i.e., probeReqThreshold value), an average packet size value (i.e., avgPktSize value), and an estimated rate value (i.e., EstimatedRate value) as shown in the example table below.

Example Rate Table EstimatedRate avgPktSize probeReqThreshold 450 Mbps 500 bytes −75 dB (RSSI) 450 Mbps 200 bytes −80 dB (RSSI) 300 Mbps 500 bytes −80 dB (RSSI) 300 Mbps 200 bytes −85 dB (RSSI)

The example rate table above indicates the minimum signal-to-noise ratio (SNR) or RSSI required for successfully transmitting a frame with an average packet size at the estimated rate. Accordingly, using a known probe request threshold value (i.e., probeReqThreshold value) and an average packet size value (i.e., avgPktSize value), an estimated rate value (i.e., EstimatedRate value) may be looked-up in the example rate table shown above.

At operation 405, the method 400 may calculate the average residual airtime per cycle for the access point 101 ₁. The average residual airtime per cycle indicates the amount of airtime not currently being used by client devices 105 associated with the access point 101 ₁ (e.g., client devices 105 ₁-105 ₃ as shown in FIG. 1). In one embodiment, this average residual airtime per cycle may be calculated over a one second interval and may be calculated using any standard or technique, including using ASAP. In one embodiment, the average residual airtime for the access point 101 ₁ that has N associated client devices 105 may be calculated at operation 405 according to the following equation:

${ResidualAirtime} = {1 - {\sum\limits_{i = 1}^{N}{{Airtime}\left( {ClientDevice}_{i} \right)}}}$

In one embodiment, the airtime used per client device 105 (i.e., Airtime(ClientDevice_(i))) may be an estimated value while in other embodiments, the airtime used per client device 105 may be measured over the network system 100 during any discrete time period. In the above equation, the airtime used by each of the N client devices 105 associated with the access point 101 ₁ may be summed. This summed value represents the individual fractions of a second of airtime consumed by each of the client devices 105 associated with the access point 101 ₁. This value may be subtracted from a single second to arrive at the residual airtime available on the access point 101 ₁ based on the N current client devices 105 associated with the access point 101 ₁.

At operation 407, the residual capacity on the access point 101 ₁ may be calculated based on the estimated data rate for the access point 101 ₁ calculated at operation 403 and the residual airtime available on the access point 101 ₁ calculated at operation 405. The residual capacity on the access point 101 ₁ represents the airtime capacity on the access point 101 ₁ that would be consumed if a client device 105 at the boundary of the initial threshold signal-to-noise ratio was to connect/associate with the access point 101 ₁. The residual capacity on the access point 101 ₁ may be calculated at operation 407 based on the below equation:

ResidualCapacity=EstimatedRate×ResidualAirtime

At operation 409 the estimated additional airtime load on the access point 101 ₁ if one or more client devices 105 are added/associated with the access point 101 ₁ may be calculated. For example, the access point 101 ₁ may use the average load per client device 105 (i.e., the average traffic sent to and from a client device 105) to estimate the anticipated airtime load from client devices 105 that would potentially connect to the access point 101 ₁. For example, the estimated additional airtime load on the access point 101 ₁ may be calculated at operation 409 by the equation below:

EstimatedAdditionalLoad=(ExpectedClientNum−N)×AvgLoadPerClien

In the above equation, N indicates the number of client devices 105 presently associated with the access point 101 ₁ (e.g., five client devices 105) while ExpectedClientNum is the maximum number of client devices 105 that are expected/anticipated to associate with that the access point 101 ₁ in the future (e.g., thirty client devices 105). In one embodiment, the average load per client device 105 may be estimated based on the current N client devices 105 associated with the access point 101 ₁, historical averages for client devices 105 associated with the access point 101 ₁ at the time at which the method 400 is being performed, and/or a preconfigured setting for the access point 101 ₁ and/or the network system 100. Similarly, the expected client number for the access point 101 ₁ may be set based on a preset configuration value or may be estimated based on historical averages for the access point 101 ₁ at the time at which the method 400 is being performed (e.g., thirty client devices 105). Since the value for the EstimatedAdditionalLoad is calculated on the basis that ExpectedClientNum≧N, when ExpectedClientNum<N the method 400 may indicate that the access point 101 ₁ is already at capacity and set the signal-to-noise threshold/probe request threshold for the access point 101 ₁ to a preset max setting and terminate the method 400.

At operation 411, the residual capacity on the access point 101 ₁ may be compared with the estimated additional airtime load on the access point 101 ₁ to determine whether the initial threshold signal-to-noise ratio efficiently uses airtime and other resources of the access point 101 ₁. For example, when operation 411 determines that the residual capacity on the access point 101 ₁ is greater than the estimated additional airtime load on the access point 101 ₁, operation 413 may decrease the initial threshold signal-to-noise ratio for the access point 101 ₁. In this case, since the residual capacity on the access point 101 ₁ is less than the estimated additional airtime load on the access point 101 ₁, the access point 101 ₁ has additional resources that may be used for additional client devices 105. Accordingly, decreasing the initial threshold signal-to-noise ratio may potentially allow additional client devices 105 to associate with the access point 101 ₁.

Conversely, when operation 411 determines that the residual capacity on the access point 101 ₁ is less than the estimated additional airtime load on the access point 101 ₁, operation 413 may increase the initial threshold signal-to-noise ratio for the access point 101 ₁. In this case, since the residual capacity on the access point 101 ₁ is greater than the estimated additional load on the access point 101 ₁, the access point 101 ₁ cannot support the additional client devices 105. Accordingly, increasing the initial threshold signal-to-noise ratio may potentially reduce the additional client devices 105 that are expected to associate with the access point 101 ₁. Following operation 413 adjustment of the threshold signal-to-noise ratio, the method 400 may return to operation 403 to analyze this new threshold signal-to-noise ratio.

When operation 411 determines that the residual capacity on the access point 101 ₁ is equal to the estimated additional load on the access point 101 ₁, operation 415 may set the threshold signal-to-noise ratio for the access point 101 ₁ equal to the initial threshold signal-to-noise ratio to the threshold signal-to-noise ratio for the access point 101 ₁. As described above, the method 400 relies on the access point's 101 ₁ current and expected load to determine the threshold signal-to-noise ratio for the access point 101 ₁. In some embodiments, the method 400 may be performed on each access point 101 ₁-101 _(N) independently. In this fashion, the access points 101 ₁-101 _(N) may solely and autonomously determine which client devices 105 ₁-105 _(P) are allowed to associate with the access point 101 ₁-101 _(N). In particular, upon receiving a probe request from a client device 105 ₁-105 _(P) that is below a threshold signal-to-noise ratio selected by the corresponding access point 101 ₁-101 _(N), the access point 101 ₁-101 _(N) may ignore the request and in effect deny association with the client device 105 ₁-105 _(P). Similarly, upon receiving a probe request from a client device 105 ₁-105 _(P) that is at or above a threshold signal-to-noise ratio selected by the corresponding access point 101 ₁-101 _(N), the access point 101 ₁-101 _(N) may respond to the request and attempt to associate with the client device 105 ₁-105 _(P).

Although the method 400 describes determining a threshold signal-to-noise ratio for an access point 101 ₁-101 _(N) based on the load generated by an initial threshold signal-to-noise ratio, in other embodiments a threshold signal-to-noise ratio may be determined without an initial value. For example, FIG. 5 shows a method 500 for determining a threshold signal-to-noise ratio for the access point 101 ₁ according to another embodiment. In contrast to the method 400 that determines a threshold signal-to-noise ratio based on an initial threshold signal-to-noise ratio, the method 500 may determine a threshold signal-to-noise ratio without an initial value. However, similar to the method 400, the method 500 may determine the threshold signal-to-noise ratio for the access point 101 ₁ based on current and/or expected client device 105 ₁-105 _(P) load on the access point 101 ₁.

The method 500 may be performed by one or more devices in the network system 100. For example, the method 500 may be performed by one or more of the network controllers 103 ₁-103 _(M) in conjunction with one or more of the access points 101 ₁-101 _(N) in the network system 100. In one embodiment, one of the network controllers 103 ₁-103 _(M) may be designated as a master network controller in the network system 100 such that each operation of the method 500 is performed by this designated master network controller. In another embodiment, the method 500 may be entirely performed by a single access point 101 ₁-101 _(N). Accordingly, each access point 101 ₁-101 _(N) may autonomously decide a threshold signal-to-noise ratio for responding to client device 105 ₁-105 _(P) probe requests.

Although each of the operations in the method 500 are shown and described in a particular order, in other embodiments, the operations of the method 500 may be performed in a different order. For example, although the operations of the method 500 are shown as being performed sequentially, in other embodiments the operations of the method 500 may be performed in overlapping or at least partially overlapping time periods.

In one embodiment, the method 500 may commence at operation 501 with calculation of the desired residual airtime capacity on the access point 101 ₁. The desired residual airtime capacity is the airtime capacity load on the access point 101 ₁ if one or more client devices 105 are added/associated with the access point 101 ₁. For example, the access point 101 ₁ may use the average load per client device 105 from the access point 101 ₁ (i.e., the average traffic sent to and from a client device 105) to estimate the anticipated load from a client device 105 that would connect to the access point 101 ₁. In one embodiment, the desired residual airtime capacity on the access point 101 ₁may be calculated at operation 501 by the equation below:

DesiredResidualCap=(ExpectedClientNumber−N)×AvgLoadPerClien

In the above equation, N indicates the number of client devices 105 presently associated with the access point 101 ₁ (e.g., five client devices 105) while ExpectedClientNum is the maximum number of client devices 105 that are expected/anticipated to associate with that the access point 101 ₁ in the future (e.g., thirty client devices 105). In one embodiment, the average load per client device 105 may be estimated based on the current N client devices 105 associated with the access point 101 ₁, historical averages for client devices 105 associated with the access point 101 ₁ at the time at which the method 500 is being performed, and/or a preconfigured setting for the access point 101 ₁ and/or the network system 100. Similarly, the expected client device 105 number for the access point 101 ₁ may be set based on a preset configuration value or may be estimated based on historical averages for the access point 101 ₁ at the time at which the method 500 is being performed. (e.g., thirty client devices 105). Since the value for the EstimatedAdditionalLoad is calculated on the basis that ExpectedClientNum≧N, when ExpectedClientNum<N the method 500 may indicate that the access point 101 ₁ is already at capacity and set the signal-to-noise threshold/probe request threshold for the access point 101 ₁ to a preset max setting and terminate the method 500

Following calculation of the desired residual airtime capacity, the average residual airtime capacity per cycle on the access point 101 ₁ may be calculated at operation 503. The average residual airtime per cycle indicates the amount of airtime not currently being used by the N client devices 105 currently associated with the access point 101 ₁. In one embodiment, this average residual airtime per cycle may be calculated over a one second interval and may be calculated using any standard or technique, including using ASAP. In one embodiment, the average residual airtime for the access point 101 ₁ that has N associated client devices 105 may be calculated according to the following equation:

${ResidualAirtime} = {1 - {\sum\limits_{i = 1}^{N}{{Airtime}\left( {ClientDevice}_{i} \right)}}}$

In the above equation, the airtime used by each of the N client devices 105 associated with the access point 101 ₁ may be summed. This summed value represents the individual fractions of seconds of airtime consumed by each of the client devices 105 associated with the access point 101 ₁. This value may be subtracted from a single second to arrive at the residual airtime available on the access point 101 ₁ based on the N current client devices 105 associated with the access point 101 ₁.

At operation 505, the desired client device 105 rate for the access point 101 ₁ may be calculated. The desired client device 105 rate may represent the data rate for each of the client devices 105 if additional client devices 105 are associated with the access point 101 ₁. In one embodiment, the desired client device 105 rate may be determined based on the desired residual airtime capacity on the access point 101 ₁ calculated at operation 501 and the average residual airtime capacity per cycle on the access point 101 ₁ calculated at operation 503. For example, the desired client device 105 rate may be calculated at operation 505 based on the following equation:

${DesiredClientRate} = \frac{DesiredResidualCap}{ResidualAirtime}$

Utilizing the desired client device 105 rate, operation 507 may determine a threshold signal-to-noise ratio for the access point 101 ₁. In one embodiment, the desired client device 105 rate may be used with a rate table to determine the threshold signal-to-noise ratio. For example, operation 507 may look up the threshold signal-to-noise ratio corresponding to the desired client device 105 rate in the rate table. In one embodiment, this lookup may be performed along with the average packet size transmitted and/or received by the access point 101 ₁. This average packet size may be calculated over any time period (e.g., average packet size over previous day, hour, minute, second, etc.). For example, the threshold signal-to-noise ratio for the access point 101 ₁ may be calculated at operation 507 using the following equation:

ThresholdSNR=RateTable(DesiredClientRate, avgPktSize)

The rate table may be preset prior to the commencement of the method 500 and retrieved/accessed from a local or remote location.

As described above, the threshold signal-to-noise ratio may be determined such that airtime capacity for the access point 101 ₁ is efficiently utilized. As described above, the method 500 relies on the access point's 101 ₁ current and expected load to determine the threshold signal-to-noise ratio for the access point 101 ₁. In contrast to the method 400, the method 500 does not rely on or require an initial estimate for the threshold signal-to-noise ratio.

In some embodiments, the method 500 may be performed on each access point 101 ₁-101 _(N) independently. In this fashion, the access points 101 ₁-101 _(N) may solely and autonomously determine which client devices 105 ₁-105 _(P) are allowed to associate with the access point 101 ₁-101 _(N). In particular, upon receiving a probe request from a client device 105 ₁-105 _(P) that is below a threshold signal-to-noise ratio selected by the corresponding access point 101 ₁-101 _(N), the access point 101 ₁-101 _(N) may ignore the request and in effect deny association with the client device 105 ₁-105 _(P). Similarly, upon receiving a probe request from a client device 105 ₁-105 _(P) that is at or above a threshold signal-to-noise ratio selected by the corresponding access point 101 ₁-101 _(N), the access point 101 ₁-101 _(N) may respond to the request and attempt to associate with the client device 105 ₁-105 _(P).

As described above, system and methods are provided for dynamically setting a threshold signal-to-noise ratio for probe requests for one or more access points 101 ₁-101 _(N) in a wireless network 100 based on several factors, including density/distance between access points 101 ₁-101 _(N) and/or current and expected load on access points 101 ₁-101 _(N). By dynamically adjusting a threshold signal-to-noise for probe requests, the systems and methods described herein may efficiently utilize resources based on current and/or expected conditions. In one embodiment, one or more of the methods 300, 400, and 500 may be performed periodically to ensure that corresponding threshold signal-to-noise ratios for probe requests are optimally set. For example, the methods 300, 400, and/or 500 may be performed during setup of the network system 100, at scheduled intervals (e.g., every ten minutes), and/or upon an access point 101 ₁-101 _(N) and/or client device 105 ₁-105 _(P) joining the network system 100.

An embodiment of the invention may be an article of manufacture in which a machine-readable medium (such as microelectronic memory) has stored thereon instructions which program one or more data processing components (generically referred to here as a “processor”) to perform the operations described above. In other embodiments, some of these operations might be performed by specific hardware components that contain hardwired logic (e.g., dedicated digital filter blocks and state machines). Those operations might alternatively be performed by any combination of programmed data processing components and fixed hardwired circuit components. Also, although the discussion focuses on uplink medium control with respect to frame aggregation, it is contemplated that control of other types of messages are applicable.

Any combination of the above features and functional ities may used in accordance with one or more embodiments. In the foregoing specification, embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the invention, and what is intended by the applicants to be the scope of the invention, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. 

What is claimed is:
 1. A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, causes performance of operations comprising: obtaining information associated with a first set of one or more access points; based at least on the information associated with the first set of one or more access points, computing a signal strength threshold value to be used by a particular access point for determining whether or not to respond to any probe request received from a wireless device; receiving, from the wireless device by the particular access point, a first probe request in a wireless signal with a first signal strength; responsive at least to determining that the first signal strength is above the signal strength threshold value: responding, by the particular access point, to the first probe request; responsive at least to determining that the first signal strength is below the signal strength threshold value: refraining from responding, by the particular access point, to the first probe request.
 2. The medium of claim 1, wherein the information associated with the first set of one or more access points comprises: a current number of wireless devices associated with the first set of one or more access points; or a number of wireless devices expected to be associated with the first of one or more access points.
 3. The medium of claim 1, wherein the information associated with the first set of one or more access points comprises: a current load on the or more access points; or an expected load on the or more access points.
 4. The medium of claim 1, wherein the information associated with the first set of one or more access points comprises channel utilization by the first set of one or more access points and/or by client devices associated with the first set of one or more access points.
 5. The medium of claim 1, further comprising dynamically updating the signal strength threshold value based on a change in the information associated with the one or more access points.
 6. The medium of claim 1, wherein the information associated with the first set of one or more access points comprises a packet size of packets transmitted by the first set of one or more access points and/or by client devices associated with the first set of one or more access points.
 7. The medium of claim 1, wherein the information associated with the first set of one or more access points comprises a density value associated with the first set of one or more access points.
 8. The medium of claim 1, wherein the information associated with the first set of one or more access points comprises a distance from (a) at least one of the first set of access points to (b) the particular access point.
 9. The medium of claim 1, further comprising selecting the first set of access points responsive to determining that each of the first set of access points advertises a same SSID as the particular access point.
 10. The medium of claim 1, wherein the determining that the first signal strength is above or below the signal strength threshold value is performed at Open Systems Interconnection (OSI) Layer
 2. 11. A system comprising: a particular access point; wherein the system is configured to perform operations comprising: obtaining information associated with a first set of one or more access points; based at least on the information associated with the first set of one or more access points, computing a signal strength threshold value to be used by the particular access point for determining whether or not to respond to any probe request received from a wireless device; receiving, from the wireless device by the particular access point, a first probe request in a wireless signal with a first signal strength; responsive at least to determining that the first signal strength is above the signal strength threshold value: responding, by the particular access point, to the first probe request; responsive at least to determining that the first signal strength is below the signal strength threshold value: refraining from responding, by the particular access point, to the first probe request.
 12. The system of claim 11, wherein the information associated with the first set of one or more access points comprises: a current number of wireless devices associated with the first set of one or more access points; or a number of wireless devices expected to be associated with the first of one or more access points.
 13. The system of claim 11, wherein the information associated with the first set of one or more access points comprises: a current load on the or more access points; or an expected load on the or more access points.
 14. The system of claim 11, wherein the information associated with the first set of one or more access points comprises channel utilization by the first set of one or more access points and/or by client devices associated with the first set of one or more access points.
 15. The system of claim 11, further comprising dynamically updating the signal strength threshold value based on a change in the information associated with the one or more access points.
 16. The system of claim 11, wherein the information associated with the first set of one or more access points comprises a packet size of packets transmitted by the first set of one or more access points and/or by client devices associated with the first set of one or more access points.
 17. The system of claim 11, wherein the information associated with the first set of one or more access points comprises a density value associated with the first set of one or more access points.
 18. The system of claim 11, wherein the information associated with the first set of one or more access points comprises a distance from (a) at least one of the first set of access points to (b) the particular access point.
 19. The system of claim 11, further comprising selecting the first set of access points responsive to determining that each of the first set of access points advertises a same SSID as the particular access point.
 20. The system of claim 11, wherein the determining that the first signal strength is above or below the signal strength threshold value is performed at Open Systems Interconnection (OSI) Layer
 2. 